// let m = new Map()
// let obj = {
//   name:'imooc'
// }
// m.set(obj,'es')
// console.log(m);
// console.log(m.get(obj));
// m.delete(obj)
// console.log(m);
// console.log(m.has(obj));

let map = new Map([
  ['name','imooc'],
  ['age', 5]
])
// console.log(map.size);
// console.log(map.has('name'));
// console.log(map.has('age'));
// map.set('name','zhangsan')
// console.log(map);


// 遍历
// map.forEach((value,key)=>console.log(value,key))

// for(let [key, value] of map){
//   console.log(key,value);
// }

// for(let key of map.keys()){
//   console.log(key);
// }

// for (let key of map.values()) {
//   console.log(key);
// }

for(let [key,value] of map.entries()){
  console.log(key,value);
}

// map object

// weakmap     // 不支持遍历和clear方法和size等。弱引用
// let wm = new WeakMap()
// wm.set([1], 2)
// wm.set({name:'imooc'},2)
// console.log(wm);
// wm.clear()

let wm = new WeakMap()
let elem = document.getElementsByTagName('h1')
wm.set(elem,'info')   // elem被销毁，wakmap会自动消失，避免内存泄露
console.log(wm.get(elem));